Passa al contenuto principale

Sintassi generale degli eventi

Un Evento inizia secondo questo schema generale di codice

{[[(marcatore), evento1, evento2, ...]] testo e/o [[azioni1]] [[azione2]],...}.

L’ordine di testo e/o azioni non è obbligatorio, è possibile avere solo testo, solo azioni, o prima un testo e poi azioni, o prima azioni e poi un testo, anche alternanza tra testo e azioni!

Esempi:
{[[(G),ON_OPEN]] As soon as you open the secret door a strange force pushes you towards the fireplace [[MOVE_HERO(K12)]] } oppure {[[(G),ON_OPEN]] [[MOVE_HERO(K12)]] As soon as you open the secret door a strange force pushes you towards the fireplace }. oppure {[[(G),ON_OPEN]] As soon as you open the secret door.. [[MOVE_HERO(K12)]] …a strange force pushes you towards the fireplace }.

Nella riga che segue viene riproposto lo schema colorando le varie parti, in modo da chiarire la corrispondenza di ciascuna parte del codice.

{[[ (marcatore) , evento1 ; evento2 ; ...]] testo e/o [[azion21]] [[azione2]] ... }

{[[ (G) , ON_OPEN ]] As soon as you open the secret door a strange force pushes you towards the fireplace   [[MOVE_HERO(K12)]] }.

Il marcatore rappresenta la posizione sulla mappa a cui l'evento è associato, possono essere usati tutti i marcatori permessi da hQuestBuilder, le lettere da A a Z, un numero da 1 a 20 o una delle frecce rispettivamente chiamate "FancyArrow", "Arrow", "inOut"

Dopo il marcatore, vengono elencati uno o più Eventi separati da virgole.

  • In molti casi l’esatta posizione del marcatore non è importante. L’importante è che sia nella stanza o la sezione di corridoio in cui l’evento deve accadere.
  • Ci sono però alcuni eventi (es. ON_STEP), che si riferiscono alla posizione esatta del marcatore, cioè le azioni associate si verificano solo quando qualcosa accade nella specifica posizione del marcatore.
  • Ci sono infine casi in cui la posizione del marcatore è del tutto irrilevante, perché l’Evento ha effetto sul gioco in generale (es. ON_NEW_TURN), o perchè va comunque specificato in altro modo dove avrà effetto (es. ON_OPEN).

Attenzione: se un marcatore non è presente nella mappa, gli eventi associati a quel marcatore non verranno mai attivati. Quando è necessario indicare con una azione o un evento una particolare cella, deve essere indicata da una coppia di una Lettera (da A a S) e un numero da 1 a 26; è possibile vedere quale è una coordinata di una cella direttamente da hQuestBuilder tenendo premuto Q e insieme D, questo mostrerà nell'angolo in basso a destra del browser un piccolo box contenente le coordinate della cella selezionata.

Modificatori

Alcuni Eventi supportano dei Modificatori. I Modificatori possibili sono :REPEAT (o :R), :LAST. Nella descrizione di ogni evento è specificato se e quali Modificatori supporta.

  • :REPEAT o :R, le azioni di un evento si attivano una sola volta (a meno di casi specifici), con l'uso di questo modificatore invece le azioni verranno eseguite tutte le volte che avviene l'evento.
  • :LAST, con l'uso di questo modificatore le azioni verranno eseguite solo quando l'ultimo eroe fa scattare l'evento. (al momento l'unico evento che lo supporta è ON_STEP)

Parametri

Alcuni Eventi supportano dei Parametri. I Parametri vengono passati indicando i valori tra parentesi tonde ( ). Nella descrizione di ogni Evento è indicato se supporta Parametri e quali sono.

Stile

I testi possono essere scritti in linguaggio html, e quindi è possibile formattare il testo come è più desiderato, con tag o con css per cambiare colore, o inserire immagini tramite il tag <img>.

Esempio:
{[[(G),ON_OPEN]] <i>As soon as you open the secret door</i> a strange <b>force</b> pushes you towards the <b style=”color: red;”>fireplace</b> <img src=”http://1.bp.blogspot.com/-LKmZrDXEiN8/Uj3AmK0xEZI/AAAAAAAAAf0/2hnNyILomOQ/s400/firecomp1.jpg” /> [[MOVE_HERO(K12)]] }.

Per lo stesso motivo è necessario usare l'accapo html <br/> all'interno dei testi, ove ritenuto necessario.

NOTA: Qualsiasi altro testo al di fuori delle {} verrà ignorato, è quindi possibile lasciare le note originali delle mappe, oppure aggiungere note al codice di QuestDown scritto.

Esempio:
La linea di codice sotto serve per definire la casella di partenza
{[[(A), ON_START]]}
l'evento sotto sposta gli eroi che tentano di aprire la porta segreta {[[(G),ON_OPEN]] [[MOVE_HERO(K12)]] As soon as you open the secret door a strange force pushes you towards the fireplace }.

Formattazione

Gli Eventi e le Azioni, sono case-insensitive, ma è consigliato per una migliore lettura del codice la loro scrittura in maiuscolo. In QuestDown vengono inoltre ignorati gli accapi, non è quindi necessario scrivere tutto un evento su una sola riga, questo significa che i due esempi seguenti sono equivalenti:

Esempio 1:
{[[(G),ON_OPEN]] [[MOVE_HERO(K12)]] As soon as you open the secret door a strange force pushes you towards the fireplace }.

Esempio 2:
{[[(G),ON_OPEN]]
[[MOVE_HERO(K12)]]
As soon as you open the secret door a strange force pushes you towards the fireplace
}